买车之前怎能不做一份最全买车攻略呢?Python五分钟实抓取全系车型参数(包含历史停售车型) 最全! 您所在的位置:网站首页 python 自动更新 买车之前怎能不做一份最全买车攻略呢?Python五分钟实抓取全系车型参数(包含历史停售车型) 最全!

买车之前怎能不做一份最全买车攻略呢?Python五分钟实抓取全系车型参数(包含历史停售车型) 最全!

2023-04-21 03:33| 来源: 网络整理| 查看: 265

​ ​汽车之家2021 全系车型参数(包含历史停售车型)​ ​

****

​ ​2021.10.21更新​ ​

增加参数:电动扰流板、无框设计车门、隐藏电动门把手、自动驾驶芯片、芯片总算力...

****

​ ​2021.8.12更新​ ​

最新官网数据(共57380款车型数据)

****

​ ​2021.7.8更新​ ​

最新官网数据(新增或修改共1098款车型数据)

****

打包成了采集器,需要的自行下载。

****

​ ​2021.5.17更新​ ​

更新最新官网数据:新增821款车型参数及图片

****

​ ​2021.4.14更新​ ​

最新官网数据更改解析,保存更多参数增加:logo、车型图片

****

2021.3.7更新最新数据

****

​2021.1.29更新​ ​全系车辆十年保值率数据​

****

​2021.1.17更新​ ​汽车之家全系车型图片:576149张原图(50.5G)​

****

2021.1.8更新

增加:品牌LOGO

****

2021.1.6更新

更新:最新2021官网数据

****

2020.5.9更新

**增加:选装包、外观颜色、内饰颜色参数

修复:多行数据存储不完整问题**

******

2020.4.15更新更新最新官网数据

******

2020.3.22更新

**新增:途虎养车 车型、保养 数据

******

2020.1.9更新

增加:品牌首字母,品牌ID,品牌名称,车系ID,车系名称,车型ID,车型名称 字段数据

****************

2019.12.25更新很多网友留言说需要车标logo,果断满足需求1. 车标logo页面

只需要车标logo和品牌参数,从移动端页面直接获取比较方便

​ https://car.m.autohome.com.cn/​

2.解析车标图片url和品牌名称response = requests.get("https://car.m.autohome.com.cn/") response.encoding = 'UTF-8' html = etree.HTML(response.text) items = html.xpath('//*[@class="item"]') for item in items: logo_url = item.xpath('./img/@data-src') if not logo_url: continue text = item.xpath('./span')[0].text downLoadImage(text, logo_url[0])3.根据url下载图片def downLoadImage(fileName, downLoadUrl): r = requests.get(downLoadUrl) fileName = fileName + ".jpg" print("正在下载 " + fileName) with open("img/" + fileName, 'wb') as f: f.write(r.content)

4.运行结果

**************

2019.12.17更新

**闲来无事研究了一下*车之家页面class 字体混淆**

思路:

取车型参数页面源码析车型混淆字体js数据析车型参数json数据配样式文件与json数据混淆后的字体替换为正常字体

效果:

途中碰到问题:

[x] 历史车型的获取[x] 全部参数的解析[x] 数据错位问题

****

2019.10.12更新

有人反馈数据不全刚抽出时间看了一下,原来之前只取了在售车型没有获取停售的车型数据,本次更新后数据为国内在售(停售)全系车型数据包含历史数据

****

2019.9.29更新

闲来无事把脚本更新了一下用selenium,获取了全系全车型详细参数,主要这次包含了停售车型数据,所有历史车型数据

****

所有车型数据

分析发现所有车型数据在一个js文件中:

ps:当然也可通过解析网页 xpath提取,或通过接口,获取方式有很多种,此文主要需要seriesId 车型ID 这一项数据 为获取车型价格做准备 顾用此方法。

def get_model(self): """获取所有车型数据""" # 所有车型js文件 url = '删除线格式 ' response = self._parse_url(url) # GBK解码 content = response.content.decode('GBK') # 剔除开头和结尾处多余字符 转换为json content = content.replace('var listCompare$100= ', '').replace(';', '') content = json.loads(content) for i in content: # 品牌首字母,名称,车系列表 brand_l, brand_n, brand_list, = i['L'], i['N'], i['List'] for q in brand_list: # 车系名称,车型列表 car_l, car_list = q['N'], q['List'] for t in car_list: # 车型ID, 车型名称 model_l = t['I'] model_n = t['N'] yield brand_l, brand_n, car_l, model_n, model_l

获取价格

价格接口需要两个参数:dealerId 经销商ID 和 seriesId 车型ID

经销商接口需要两个参数:seriesId 车型ID 和 cityId 区域代码

def get_price(self, dealerId, seriesId): """获取价格""" url = ‘删除线格式 ’ # 根据经销商ID 和 车型ID 获取车型价格 response = self._parse_url(url) # 无数据跳过 if not response.json()['result']['list']: print('暂无经销商信息') return # 获取经销商信息 主要取经销商ID 用来获取价格 contents = response.json()['result']['list'] for con in contents: # 汽车型号 SpecName = con['SpecName'] # 指导价 OriginalPrice = con['OriginalPrice'] # 参考价 Price = con['Price'] print('{}数据请求中'.format(SpecName)) yield SpecName, OriginalPrice, Price

你学会了吗?完整源代码点这里即可获取



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有